class Inspector {
  static all(obj) {
    if (typeof obj !== 'object') {
      return 'Argument is a/an ' + (typeof obj).toUpperCase() + ', not an OBJECT';
    }

    const all1 = [];
    Object.keys(obj).forEach(key => {
      if (typeof obj[key] === 'function') {
        all1.push(key + '() :: FUNCTION');
      } else {
        all1.push(key + ' :: ' + (typeof obj[key]).toUpperCase());
      }
    });
    return all1;
  }

  static functions(obj) {
    if (typeof obj !== 'object') {
      return 'Argument is a/an ' + (typeof obj).toUpperCase() + ', not an OBJECT';
    }

    const functions1 = [];
    Object.keys(obj).forEach(key => {
      if (typeof obj[key] === 'function') {
        functions1.push(key + '()');
      }
    });
    return functions1;
  }

  static properties(obj) {
    if (typeof obj !== 'object') {
      return 'Argument is a/an ' + (typeof obj).toUpperCase() + ', not an OBJECT';
    }

    const properties1 = [];
    Object.keys(obj).forEach(key => {
      if (typeof obj[key] !== 'function') {
        properties1.push(key + ' :: ' + (typeof obj[key]).toUpperCase());
      }
    });
    return properties1;
  }
}